import java.util.*;
import java.util.stream.Collectors;

/**
 * @author LKQ
 * @date 2022/4/8 10:16
 * @description 逆向思维，保留k个元素，那么需要删除n-k个元素，而且一定是从边界开始删除的
 */
public class Solution3 {
    public static void main(String[] args) {

    }
    public List<Integer> findClosestElements(int[] arr, int k, int x) {
        int n = arr.length, l = 0, r = n - 1;
        int del = n - k;
        while (del-- > 0) {
            if (x - arr[l] <= arr[r] - x) {
                r--;
            } else {
                l++;
            }
        }
        List<Integer> res = new ArrayList<>(k);
        for (int i = 0; i < k; i++) {
            res.add(arr[l + i]);
        }
        return res;
    }
}
